菜虫学电脑
您当前的位置:首页 > FreeBSD

LPI 101 考试准备: GNU 和 UNIX 命令(下)

来源:  评论: 条  收藏本文  去论坛

本文 Tags:进程 脚本 命令 状态 清单

  没有终端的作业

  在实践中,可能希望让后台进程的标准 IO 流重定向到文件或者来自文件。有另一个相关问题;如果控制终端关闭了或用户注销了,那么进程会怎么样?答案取决于使用的 shell。如果 shell 发送 SIGHUP(或 hangup)信号,那么应用程序可能关闭。我们稍后讨论信号,但是目前考虑解决这个问题的另一种方式。

  nohup

  nohup 命令用于启动一个命令,它将忽略 hangup 信号并将 stdout 和 stderr 附加到文件。默认文件是 nohup.out 或 $HOME/nohup.out。如果文件不可写,那么命令将不运行。如果希望将输出发送到别处,那么对 stdout 或 stderr 进行重定向。

  nohup 的另一个特点是,它不执行管道或命令列表。在 对标准 IO 进行重定向 一节中,我们看到了如何将一组命令保存在 shell 脚本中并引用(source)它。可以将管道或列表保存在文件中,然后使用 sh(默认 shell)或 bash 命令运行它,但是不能使用前面示例中使用的 . 或 source 命令。本系列中的下一个教程(针对主题 104,讨论设备、Linux 文件系统和 Filesystem Hierarchy Standard)将解释如何使脚本文件可执行,但是目前只通过引用(source)或者通过使用 sh 或 bash 命令来运行脚本。清单 89 显示如何用脚本运行刚才创建的数字化时钟。但是,将时间写到文件中其实没什么用,而且文件会随着脚本运行而增大,所以将时钟设置为每 30 秒更新一次而不是每秒一次。


清单 89. 使用 nohup 运行脚本中的命令列表

   
[ian@echidna ian]$ echo "while sleep 30; do date;done">pmc.sh 
[ian@echidna ian]$ nohup . pmc.sh& 
[1] 21700 
[ian@echidna ian]$ nohup: appending output to `nohup.out' 
 
[1]+ Exit 126        nohup . pmc.sh 
[ian@echidna ian]$ nohup sh pmc.sh& 
[1] 21709 
[ian@echidna ian]$ nohup: appending output to `nohup.out' 
 
[ian@echidna ian]$ nohup bash pmc.sh& 
[2] 21719 
[ian@echidna ian]$ nohup: appending output to `nohup.out' 


 

 

我要分享到: 新浪|微博新浪微博 百度|Hi空间百度空间 分享到QQ空间QQ空间 开心网开心网 校内|人人网人人网 豆瓣网豆瓣网 搜狐|白社会搜狐白社会 QQ微博

 

   最新图文资讯
   相关文章
发表评论 共有条评论  [ 查看全部 ]
用户名: 密码: 匿名发表
验证码:     
 
推荐文章
[更新截图][下载]iPhone QQ2011公测版发布:支持挂Q和收图
[更新截图][下载]iPho
Ubuntu 8.04 升级到 Ubuntu 8.10 初体验(图文)
Ubuntu 8.04 升级到 U
QQ2011新功能抢先体验:支持多帐号同时登录
QQ2011新功能抢先体验
剑指新浪 腾讯宣称用户转发微博可加速QQ等级
剑指新浪 腾讯宣称用
栏目更新
栏目热门
网站首页 - 广告服务 - 友情链接 - 联系我们 - 请来留言 - 网站地图 - WAP - -